package com.dcy.principle.singleresponsibility;

/**
 * @Author：dcy
 * @Description:
 * @Date: 2021/1/18 11:22
 */
public class SingleResponsibility2 {

    public static void main(String[] args) {
        ReadVehicle readVehicle = new ReadVehicle();
        readVehicle.run("摩托车");
        readVehicle.run("汽车");

        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");
    }
}

/**
 * 方案2的分析
 * 方式二
 * 1、遵守了单一职责原则
 * 2、但是这样做的改动很大，即使类分解，同事修改客户端
 * 3、改进：直接修改Vehicle类，改动的代码会比较少=》方案3
 */
class ReadVehicle{
    public void run(String vehicle){
        System.out.println(vehicle+" 公路上运行。。。");
    }
}

class AirVehicle{
    public void run(String vehicle){
        System.out.println(vehicle+" 天空上运行。。。");
    }
}

class WatchVehicle{
    public void run(String vehicle){
        System.out.println(vehicle+" 水上运行。。。");
    }
}